package com.xbts.system.domain;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.xbts.common.annotation.Excel;
import com.xbts.common.core.domain.BaseEntity;
import com.xbts.common.enums.CompanyInformationEnum;
import com.xbts.common.utils.StringUtils;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;

/**
 * 公司信息对象 cn_company_information
 *
 * @author xbts
 * @date 2023-08-28
 */
@Data
@ApiModel("公司信息对象")
@TableName("cn_company_information")
public class CnCompanyInformation extends BaseEntity {

    private static final long serialVersionUID=1L;

    /** 主键 */
    @TableId
    private String id;

    /**
     * @see CompanyInformationEnum
     */
    private String settingType;

    /** 简介 */
    @ApiModelProperty("简介")
    private String introduce;

    /** 二维码地址 */
    @ApiModelProperty("二维码地址")
    private String qrCode;

    /** 地理位置 */
    @ApiModelProperty("地理位置")
    private String address;

    /** 联系电话 */
    @ApiModelProperty("联系电话")
    private String contactPhone;

    /** 联系电话 */
    @ApiModelProperty("联系人")
    private String contactUser;

    /** 固定电话 */
    private String fixedPhone;

    /** 联系邮件 */
    @ApiModelProperty("联系邮件")
    private String contactEmail;

    /** 经度 */
    @ApiModelProperty("经度")
    private BigDecimal longitude;

    /** 纬度 */
    @ApiModelProperty("纬度")
    private Double latitude;

    /** 公司银行账号 */
    @Excel(name = "公司银行账号")
    @ApiModelProperty("公司银行账号")
    private String companyAccountNumber;

    public<T> QueryWrapper<T> queryWrapper(){
        QueryWrapper<T> queryWrapper=new QueryWrapper<>();
        queryWrapper.like(StringUtils.isNotEmpty(address),"address",address);
        queryWrapper.like(StringUtils.isNotEmpty(contactPhone),"contact_phone",contactPhone);
        queryWrapper.like(StringUtils.isNotEmpty(contactEmail),"contact_email",contactEmail);
        queryWrapper.orderByDesc("create_time");
        return queryWrapper;
    }
}